package com.d3works.apps.account.service.payment.invoice.payment;

import com.d3works.apps.account.db.InvoicePayment;
import com.d3works.exception.D3worksException;
import com.google.inject.persist.Transactional;
import java.io.IOException;
import javax.xml.bind.JAXBException;
import javax.xml.datatype.DatatypeConfigurationException;

public interface InvoicePaymentValidateService {

  @Transactional(rollbackOn = {Exception.class})
  public void validate(InvoicePayment invoicePayment, boolean force)
      throws D3worksException, JAXBException, IOException, DatatypeConfigurationException;

  public void validate(InvoicePayment invoicePayment)
      throws D3worksException, JAXBException, IOException, DatatypeConfigurationException;

  @Transactional(rollbackOn = {Exception.class})
  public InvoicePayment createMoveForInvoicePayment(InvoicePayment invoicePayment)
      throws D3worksException;
}
